export interface PurchaseRequiredOrderPart {
  purchaseRequiredOrderPartId: number; // 物料行ID
  PROPpurchaseRequiredOrderId: number; // 采购需求单ID
  partNum: string; // 物料编号
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 物料描述
  partType: string; // 规格型号
  image: '' // 图片
  purchaseQuantity: number; // 申请采购数量
  orderedQuantity: number; // 已下单数量
  purchaseDate: Date; // 建议采购日期
  PROPSupplyId: number; // 建议供应商ID
  supplyName: string; // 建议供应商名称
  supplyNum: string; // 建议供应商编号
  PROPPartId: number; // 物料外键ID
  note: string; // 备注
  isInspection: boolean; // 是否检验
}

export interface PurchaseRequiredOrder {
  purchaseRequiredOrderId: number; // 采购需求单ID
  advicePurchaseDate: Date; // 建议采购日期
  purchaseManName: string; // 申请人名称
  purchaseManId: number; // 申请人ID
  purchaseManNum: string; // 申请人编号
  departmentName: string; // 申请部门名称
  departmentId: number; // 申请部门ID
  departmentNum: string; // 申请部门编号
  remark: string; // 备注
  billCategory?: string; // 单据类别：辅料/辅材/原料/食材
  purchaseRequiredNum: string; // 采购需求单号
  status: string; // 状态
  isClosed: boolean; // 是否结案
  createDate: Date; // 制单日期
  creator: string; // 制单人
  files: string[]; // 附件
  purchaseRequiredOrderParts: PurchaseRequiredOrderPart[]; // 采购需求单物料行
}
export interface PurchaseOrder {
  purchaseOrderId: number; // 采购订单ID
  purchaseOrderNum: string; // 采购订单编号
  orderDate: Date; // 订单日期
  poSupplyId: number; // 供应商ID
  supplyNum: string; // 供应商编号
  supplyShortName: string; // 供应商简称
  supplyChineseName: string; // 供应商中文名
  supplyEnglishName: string; // 供应商英文名
  supplyContactName: string; // 供应商联系人姓名
  supplyContactId: number; // 供应商联系人ID
  address: string; // 地址
  purchaseManName: string; // 采购员姓名
  purchaseManId: number; // 采购员ID
  departmentName: string; // 部门名称
  departmentId: number; // 部门ID
  supplySettlementMethodId: number; // 供应商结算方式ID
  settlementMethodName: string; // 结算方式名称
  supplyCurrencyId: number; // 供应商货币ID
  currencyName: string; // 货币名称
  supplyCollectionPeriodId: number; // 供应商收款期ID
  collectionPeriodName: string; // 收款期名称
  remark: string; // 备注
  status: string | null; // 状态
  isClosed: boolean; // 是否关闭
  totalReceivedQuantity: number; // 总接收数量
  totalNotReceivedQuantity: number; // 总未接收数量
  totalPurchaseQuantity: number; // 总采购数量
  totalaMountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 总税额
  totalAmountWithoutTax: number; // 不含税总金额
  createDate: Date; // 创建日期
  creator: string; // 创建者
  files: string[]; // 文件列表
  fileRemarks: any; // 文件备注，根据实际情况可能需要调整类型
  logisticsCompanyCode?: string; // 物流公司编码
  logisticsCompanyName?: string; // 物流公司名称
  logisticsTrackingNum?: string; // 物流单号
  logisticsContactName?: string; // 物流联系人
  logisticsContactPhone?: string; // 物流联系人电话
  logisticsFee?: number; // 物流费用
  purchaseOrderParts: PurchaseOrderPart[]; // 采购订单物料行
}

export interface PurchaseOrderPart {
  purchaseOrderPartId: number | null; // 采购订单物料行ID
  partNum: string; // 零件编号
  partUOM: string; // 单位
  partName: string; // 零件名称
  description: string | null; // 描述
  partType: string; // 零件类型
  image: string | null; // 图片
  realTimeInventory: number; // 实时库存
  purchaseQuantity: number; // 采购数量
  estimatedDeliveryDate: Date; // 预计交货日期
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  poPartId: number; // 采购订单部分ID
  receivedQuantity: number; // 接收数量
  noReceivedQuantity: number; // 未接收数量
  deliveryQuantity: number; // 交货数量
  note: string; // 备注
  purchasereQuireNum: string | null; // 采购需求编号
  purchaseRequiredOrderPartId: number | null; // 采购需求订单物料行ID
  poPurchaseOrderId: number | null; // 采购订单ID
  purchaseOrderNum: string | null; // 采购订单编号
  isInspection: boolean; // 是否检验
  qrCodePath: string; // 二维码路径
}
// 采购到货订单接口定义
export interface PurchaseArrivalOrder {
  purchaseArrivalOrderId: number; // 采购到货订单ID
  purchaseArrivalOrderNum: string; // 采购到货订单编号
  orderDate: Date; // 订单日期
  paoSupplyId: number; // 供应商ID
  supplyShortName: string; // 供应商简称
  supplyChineseName: string; // 供应商中文名
  supplyEnglishName: string; // 供应商英文名
  supplyNum: string; // 供应商编号
  supplyContactName: string; // 供应商联系人姓名
  supplyContactId: number; // 供应商联系人ID
  address: string; // 地址
  purchaseManName: string; // 采购员姓名
  purchaseManId: number; // 采购员ID
  departmentName: string; // 部门名称
  departmentId: number; // 部门ID
  actualArrivalDate: Date; // 实际到货日期
  paoSettlementMethodId: number; // 结算方式ID
  settlementMethodName: string; // 结算方式名称
  paoCurrencyId: number; // 货币ID
  currencyName: string; // 货币名称
  paoCollectionPeriodId: number; // 收款期限ID
  collectionPeriodName: string; // 收款期限名称
  remark: string; // 备注
  status: string; // 状态
  isClosed: boolean; // 是否关闭
  isArrival: boolean; // 是否到货
  alreadyReceivedQuantity: number; // 已接收数量
  arrivalQuantity: number; // 到货数量
  returnedQuantity: number; // 退货数量
  totalaMountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 税额
  totalAmountWithoutTax: number; // 不含税总金额
  createDate: Date; // 创建日期
  creator: string; // 创建者
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注
  // 物流信息（可选）
  logisticsCompanyCode?: string; // 物流公司编码
  logisticsCompanyName?: string; // 物流公司名称
  logisticsTrackingNum?: string; // 物流单号
  logisticsContactName?: string; // 物流联系人
  logisticsContactPhone?: string; // 物流联系电话
  logisticsFee?: number; // 物流费用
  purchaseArrivalOrderParts: PurchaseArrivalOrderPart[]; // 采购到货订单物料行
  qrCodePath: string;
  qrCodeConfigurationId: number;
  qrCodeConfigurationName: string
}

// 采购到货订单物料行接口定义
export interface PurchaseArrivalOrderPart {
  purchaseArrivalOrderPartId: number; // 采购到货订单物料行ID
  partNum: string; // 物料编号
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 物料描述
  partType: string; // 规格型号
  image: string; // 图片
  arrivalQuantity: number; // 到货数量
  arrivalDate: Date; // 到货日期
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  paoPartId: number; // 部件ID
  alreadyReceivedQuantity: number; // 已接收数量
  returnedQuantity: number; // 退货数量
  warehouseId: number; // 仓库ID
  warehouseName: string; // 仓库名称
  warehouseNum: string; // 仓库编号
  positionId: number; // 位置ID
  positionName: string; // 位置名称
  positionNum: string; // 位置编号
  note: string; // 备注
  purchaseOrderNum: string; // 采购订单编号
  purchaseOrderPartId: number; // 采购订单物料行ID
  paopPurchaseArrivalOrderId: number; // 采购到货订单ID
  purchaseArrivalOrderNum: string; // 采购到货订单编号
  isInspection: boolean; // 是否检验
}
// 采购退货订单接口定义
export interface PurchaseReturnedOrder {
  purchaseReturnedOrderId: number; // 采购退货订单ID
  purchaseReturnedOrderNum: string; // 采购退货订单编号
  orderDate: Date; // 订单日期
  proSupplyId: number; // 供应商ID
  supplyShortName: string; // 供应商简称
  supplyChineseName: string; // 供应商中文名
  supplyEnglishName: string; // 供应商英文名
  supplyNum: string; // 供应商编号
  supplyContactName: string; // 供应商联系人姓名
  supplyContactId: number; // 供应商联系人ID
  address: string; // 地址
  purchaseManName: string; // 采购员姓名
  purchaseManId: number; // 采购员ID
  departmentName: string; // 部门名称
  departmentId: number; // 部门ID
  proSettlementMethodId: number; // 结算方式ID
  settlementMethodName: string; // 结算方式名称
  proCurrencyId: number; // 货币ID
  currencyName: string; // 货币名称
  proCollectionPeriodId: number; // 收款期限ID
  collectionPeriodName: string; // 收款期限名称
  remark: string; // 备注
  status: string; // 状态
  isClosed: boolean; // 是否关闭
  isReturned: boolean; // 是否退货
  returnedQuantity: number; // 退货数量
  totalAmountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 税额总计
  totalAmountWithoutTax: number; // 不含税总金额
  createDate: Date; // 创建日期
  creator: string; // 创建者
  files: string[]; // 文件列表
  fileRemarks: string[]; // 文件备注列表
  purchaseReturnedOrderParts: PurchaseReturnedOrderPart[]; // 采购退货订单物料行列表
}

export interface PurchaseReturnedOrderPart {
  purchaseReturnedOrderPartId: number; // 采购退货订单物料行ID
  partNum: string; // 物料编号
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 物料描述
  partType: string; // 规格型号
  image: string; // 图片
  returnedQuantity: number; // 退货数量
  returnedDate: Date; // 退货日期
  warehouseId: number; // 仓库ID
  warehouseName: string; // 仓库名称
  warehouseNum: string; // 仓库编号
  positionId: number; // 位置ID
  positionName: string; // 位置名称
  positionNum: string; // 位置编号
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  propPartId: number; // 部件ID
  alreadyReturnedQuantity: number; // 已退货数量
  note: string; // 备注
  purchaseArrivalOrderNum: string; // 采购到货订单编号
  purchaseArrivalOrderPartId: number; // 采购到货订单物料行ID
  propPurchaseReturnedId: number; // 采购退货订单ID
  purchaseReturnedOrderNum: string; // 采购退货订单编号
}
export interface OutsourcingOrder {
  outsourcingOrderId: number; // 外包订单ID
  outsourcingOrderNum: string; // 外包订单编号
  orderDate: Date; // 订单日期
  ooSupplyId: number; // 供应商ID
  supplyChineseName: string; // 供应商中文名称
  supplyShortName: string; // 供应商简称
  supplyEnglishName: string; // 供应商英文名称
  supplyContactName: string; // 供应商联系人姓名
  supplyContactId: number; // 供应商联系人ID
  supplyNum: string; // 供应商编号
  purchaseManName: string; // 采购员姓名
  purchaseManId: number; // 采购员ID
  departmentName: string; // 部门名称
  departmentId: number; // 部门ID
  ooSettlementMethodId: number; // 结算方式ID
  settlementMethodName: string; // 结算方式名称
  ooCurrencyId: number; // 货币ID
  currencyName: string; // 货币名称
  ooCollectionPeriodId: number; // 收款周期ID
  collectionPeriodName: string; // 收款周期名称
  remark: string; // 备注
  status: string; // 状态
  isClosed: boolean; // 是否关闭
  createDate: Date; // 创建日期
  creator: string; // 创建人
  totalOutsourcingQuantity: number; // 总外包数量
  totalReceivedQuantity: number; // 总到货数量
  totalaMountWithTax: number; // 含税总金额
  totalTaxAmount: number; // 总税额
  totalAmountWithoutTax: number; // 不含税总金额
  files: string[]; // 文件列表
  outsourcingOrderParts: OutsourcingOrderPart[]; // 外包订单部件列表
}

export interface OutsourcingOrderPart {
  outsourcingOrderPartId: number; // 外包订单部件ID
  jobOrderId: number; // 作业订单ID
  jobOrderNum: string; // 作业订单编号
  jobOrderProcessId: number; // 作业订单工序ID
  processNum: string; // 工序编号
  processName: string; // 工序名称
  processNumber: number; // 工序号
  oopPartId: number; // 部件ID
  partNum: string; // 部件编号
  partUOM: string; // 部件单位
  partName: string; // 部件名称
  partType: string; // 部件类型
  outsourcingQuantity: number; // 外包数量
  outsourcingPlanDate: Date; // 外包计划日期
  priceWithTax: number; // 含税价格
  priceWithoutTax: number; // 不含税价格
  taxRate: number; // 税率
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  arrivalQuantity: number; // 到货数量
  note: string; // 备注
  outsourcingOrderNum: string; // 外包订单编号
  oopOutsourcingOrderId: number; // 外包订单ID
  isInspection: boolean; // 是否检验
}
export interface OutsourcingArrivalOrderPart {
  outsourcingArrivalOrderPartId: number;
  jobOrderId: number;
  jobOrderNum: string;
  jobOrderProcessId: number;
  processNum: string;
  processName: string;
  processNumber: number;
  partNum: string;
  partUOM: string;
  partName: string;
  description: string;
  partType: string;
  image: string;
  arrivalQuantity: number;
  arrivalDate: Date;
  priceWithTax: number;
  priceWithoutTax: number;
  taxRate: number;
  amountWithTax: number;
  amountWithoutTax: number;
  taxAmount: number;
  oaopPartId: number;
  returnedQuantity: number;
  note: string;
  isLast: boolean;
  outsourcingOrderNum: string;
  outsourcingOrderPartId: number;
  oaopOutsourcingArrivalOrderId: number;
  outsourcingArrivalOrderNum: string;
  isInspection: boolean;
}

export interface OutsourcingArrivalOrder {
  outsourcingArrivalOrderId: number;
  outsourcingArrivalOrderNum: string;
  orderDate: Date;
  oaoSupplyId: number;
  supplyShortName: string;
  supplyChineseName: string;
  supplyEnglishName: string;
  supplyNum: string;
  supplyContactName: string;
  supplyContactId: number;
  address: string;
  purchaseManName: string;
  purchaseManId: number;
  departmentName: string;
  departmentId: number;
  actualArrivalDate: Date;
  oaoSettlementMethodId: number;
  settlementMethodName: string;
  oaoCurrencyId: number;
  currencyName: string;
  oaoCollectionPeriodId: number;
  collectionPeriodName: string;
  remark: string;
  status: string;
  isClosed: boolean;
  isArrival: boolean;
  arrivalQuantity: number;
  returnedQuantity: number;
  totalaMountWithTax: number;
  totalTaxAmount: number;
  totalAmountWithoutTax: number;
  createDate: Date;
  creator: string;
  files: string[];
  fileRemarks: string[];
  outsourcingArrivalOrderParts: OutsourcingArrivalOrderPart[];
}
export interface OutsourcingReturnedOrderPart {
  outsourcingReturnedOrderPartId: number; // 委外退货单物料行Id
  jobOrderId: number; // 工单Id
  jobOrderNum: string; // 工单号
  jobOrderProcessId: number; // 工单工序Id
  processNum: string; // 工序编码
  processName: string; // 工序名称
  processNumber: number; // 工序序号
  partNum: string; // 物料编码
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 物料描述
  partType: string; // 规格型号
  image: string; // 图片链接
  returnedQuantity: number; // 退货数量
  returnedDate: Date; // 退货日期
  priceWithTax: number; // 单价（含税）
  priceWithoutTax: number; // 单价（不含税）
  taxRate: number; // 税率
  amountWithTax: number; // 含税金额
  amountWithoutTax: number; // 不含税金额
  taxAmount: number; // 税额
  oropPartId: number; // 物料Id
  isLast: boolean; // 是否末序
  note: string; // 备注
  outsourcingArrivalOrderNum: string; // 来源委外到货单单号
  outsourcingArrivalOrderPartId: number; // 委外到货单内物料行Id
  oropOutsourcingReturnedOrderId: number; // 委外退货单Id
  outsourcingReturnedOrderNum: string; // 委外退货单单号
}

export interface OutsourcingReturnedOrder {
  outsourcingReturnedOrderId: number; // 委外退货单Id
  outsourcingReturnedOrderNum: string; // 委外退货单单号
  orderDate: Date; // 单据日期
  oroSupplyId: number; // 供应商Id
  supplyShortName: string; // 供应商简称
  supplyChineseName: string; // 供应商中文名
  supplyEnglishName: string; // 供应商英文名
  supplyNum: string; // 供应商编码
  supplyContactName: string; // 供应商联系人名称
  supplyContactId: number; // 供应商联系人Id
  address: string; // 退料地址
  purchaseManName: string; // 业务员名称
  purchaseManId: number; // 业务员Id
  departmentName: string; // 部门名称
  departmentId: number; // 部门Id
  oroSettlementMethodId: number; // 结算方式Id
  settlementMethodName: string; // 结算方式名称
  oroCurrencyId: number; // 交易币种Id
  currencyName: string; // 交易币种名称
  oroCollectionPeriodId: number; // 付款账期Id
  collectionPeriodName: string; // 付款账期名称
  remark: string; // 备注
  status: string; // 状态
  isClosed: boolean; // 是否结案
  returnedQuantity: number; // 退货数量
  totalaMountWithTax: number; // 金额合计（含税）
  totalTaxAmount: number; // 税额合计
  totalAmountWithoutTax: number; // 不含税金额合计
  createDate: Date; // 制单日期
  creator: string; // 制单人
  files: string[]; // 附件
  fileRemarks: string[]; // 附件备注
  outsourcingReturnedOrderParts: OutsourcingReturnedOrderPart[]; // 委外退货单物料行
}
export interface PurchaseInspectionOrder {
  purchaseInspectionOrderId: number; // 采购检验单Id
  purchaseInspectionOrderNum: string; // 采购检验单单号
  partNum: string; // 物料编码
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 描述
  partType: string; // 物料类型
  image: string; // 图片
  status: string; // 状态
  supplyShortName: string; // 供应商简称
  supplyChineseName: string; // 供应商中文名
  inspectionQuantity: number; // 检验数量
  inspectionDate: string; // 检验日期
  qualifiedQuantity: number; // 合格数量
  unqualifiedQuantity: number; // 不合格数量
  pioPartId: number; // 物料Id
  warehouseId: number; // 仓库Id
  warehouseName: string; // 仓库名称
  warehouseNum: string; // 仓库编码
  positionId: number; // 库位Id
  positionName: string; // 库位名称
  positionNum: string; // 库位编码
  note: string; // 备注
  purchaseOrderPartId: number; // 采购订单物料Id
  purchaseArrivalOrderNum: string; // 采购到货单单号
  purchaseArrivalOrderPartId: number; // 采购到货单物料Id
  pioPurchaseArrivalOrderId: number; // 采购到货单Id
}
export interface OutsourcingInspectionOrder {
  outsourcingInspectionOrderId: number; // 委外检验单Id
  outsourcingInspectionOrderNum: string; // 委外检验单单号
  partNum: string; // 物料编码
  partUOM: string; // 物料单位
  partName: string; // 物料名称
  description: string; // 描述
  partType: string; // 物料类型
  image: string; // 图片
  status: number; // 状态
  inspectionQuantity: number; // 检验数量
  inspectionDate: string; // 检验日期
  qualifiedQuantity: number; // 合格数量
  unqualifiedQuantity: number; // 不合格数量
  part: any; // 物料
  oioPartId: number; // 物料Id
  warehouseId: number; // 仓库Id
  warehouseName: string; // 仓库名称
  warehouseNum: string; // 仓库编码
  positionId: number; // 库位Id
  positionName: string; // 库位名称
  positionNum: string; // 库位编码
  note: string; // 备注
  productionWarehousingNum: string; // 生产入库单单号
  productionWarehousingId: number; // 生产入库单Id
}

